package com.arsn.myf.generate.service;

import com.arsn.myf.generate.entity.GenerateCodeTable;
import com.arsn.myf.generate.entity.TableColumnInfo;
import com.arsn.myf.generate.vo.GenerateCodeTableVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 代码生成接口层
 * @author zhongrj
 * @since 2022-12-01
 */
public interface GenerateCodeService extends IService<GenerateCodeTable> {

    /**
     * 自定义代码生成分页数据
     * @param page
     * @param generateCode
     * @return
     */
    IPage<GenerateCodeTableVO> selectPageGenerateCodeList(Page<GenerateCodeTableVO> page, GenerateCodeTableVO generateCode);

    /**
     * 代码生成
     * @param generateCodeTable
     * @return
     */
    void codeGenerate(GenerateCodeTable generateCodeTable, HttpServletResponse response);

    /**
     * 查询表列属性信息
     * @param tableName 表名称
     * @return
     */
    List<TableColumnInfo> getTableColumnInfo(String tableName);
}
